package com.cloud.tsp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.api.constants.StrVo;
import com.cloud.api.domain.forward.QueryVehicleSale;
import com.cloud.api.domain.forward.ResponseData;
import com.cloud.api.domain.screen.MapData;
import com.cloud.api.domain.screen.ModelSale;
import com.cloud.api.domain.stats.VehicleStats;
import com.cloud.api.domain.tsp.*;
import com.cloud.mybatis.domain.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author haohaibo
 * @since 2023-12-20
 */
public interface IVehicleSaleService extends IService<VehicleSale> {

    TableDataInfo<VehicleSale> selectVehicleSaleList(QueryVehicleProduction para);

    Long selectVehicleCountByDept(List<String> deptId);

    VehicleStats selectVehicleCount();

    TableDataInfo<VehicleSale> selectVehicleForwardList(QueryVehicleSale para);

    VehicleBaseVo selectVehicleBaseInformation(String id);

    void updateByIds(BatchId para);

    void insertOrUpdate(VehicleSale para);

    List<VinLockStatus> selectVinScopeTsp(String vin);

    public boolean checkExist(String vin);

    void downloadTemplate(HttpServletResponse response) throws IOException;

    void exportSaleVinList(QueryVehicleProduction para, HttpServletResponse response) throws IOException ;

    ResponseData importSaleVinList(String deptId, MultipartFile file, HttpServletResponse response, String key) throws IOException;

    List<VehicleSale> getSaleCount();

    List<ModelSale> getSaleCountTop5();

    List<VehicleSale> getSaleCountTop10();

    List<MapData> getSaleCountMap();

    VehicleSale selectVehicleSaleByVin(String vin);
}